;(function($) {
    DT.Shortcut = function(options) {
        var _this = this;

        this.defaults = {
            desktop   : null,              // 桌面对象，主要用于打开窗口用
            page      : null,              // 附加到的页面
            taskbar   : null,              // 任务栏对象，主要用来关联操作
            size      : 72,                // 图标大小
            index     : 100,               // 索引值，排列时按照此时，越小越靠前。
            icons     : {
                desktop : DT.pathname + 'resources/images/shortcut/72x72/applications-other.png',  // 在桌面上的默认图标
                taskbar : DT.pathname + 'resources/images/shortcut/32x32/applications-other.png',  // 在任务栏上的默认图标
                window  : DT.pathname + 'resources/images/shortcut/16x16/applications-other.png'  // 在窗口上的默认图标
            },
            name      : '未命名'           // 快捷方式的名称
        };

        this.handler = {
            shortcut : null,
            mask     : null,
            name     : null
        };

        this._ini = function(o) {
            options = $.extend(this.defaults, options);

            return this;
        };
        /**
         * 创建快捷方式对象
         */
        this._createShortcut = function() {
            var handler  = _this.handler,
                defaults = _this.defaults;
            
            handler.mask = $('<div></div>').addClass('dt-desktop-page-shortcut-mask');
            handler.name = $('<div></div>').addClass('dt-desktop-page-shortcut-name').html(options.name);

            handler.shortcut = $('<div></div>').addClass('dt-desktop-page-shortcut')
                .appendTo(options.page)
                .append(handler.mask)
                .append(handler.name);
            
            var left = (handler.shortcut.width() - _this.defaults.size) / 2;

            handler.shortcut.css({
                background : 'url(' + defaults.icons.desktop + ') no-repeat ' + left + 'px 5px'
            });

            return this;
        };

        this._bindEvents = function() {
            var handler = _this.handler;

            handler.shortcut.click(function() {

                // 将Desktop/Page/Shortcut对象添加到moduleManager中。
                var guid = DT.moduleManager.getGUID();

                DT.moduleManager.setHandler(guid, 'desktop', options.desktop);
                DT.moduleManager.setHandler(guid, 'taskbar', options.taskbar);
                DT.moduleManager.setHandler(guid, 'page', options.page);
                DT.moduleManager.setHandler(guid, 'shortcut', handler.shortcut);

                var taskbar  = options.taskbar,
                    box = new DT.Browser({
                        desktop : options.desktop,
                        taskbar : taskbar,
                        guid    : guid,
                        title   : options.name,
                        icon    : options.icons.window,
                        allowCreateTab : true
                    });

                // 在任务栏上创建一个运行时图标
                taskbar.addIcon({
                    type    : 'running',
                    winType : 'browser',            // 创建的窗口类型，box/window/browser
                    guid    : guid,
                    title   : options.name,
                    icon    : options.icons.taskbar,
                    events  : options.events
                });

                box.render();

                // 缓存快捷方式创建的窗口
                DT.moduleManager.setHandler(guid, 'browser', box);

                taskbar.activate(options.guid);
                
            });
        };

        this._ini(options);
    };

    DT.Shortcut.prototype = {
        render : function() {
            this._createShortcut()._bindEvents();
            return this;
        },

        // 获取快捷方式的句柄
        getHandler : function() {
            return this.handler.shortcut;
        }
    };
    DT.Shortcut.prototype.constructor = DT.Shortcut;
})(jQuery);